package com.breakfast.fun.ui.user.cart;

import com.breakfast.fun.base.BaseModel;
import com.breakfast.fun.base.BasePresenter;
import com.breakfast.fun.base.BaseView;
import com.breakfast.fun.data.entity.home.cart.SendTime;
import com.breakfast.fun.data.entity.home.product.ProductState;
import com.breakfast.fun.data.entity.home.product.WeekdayState;
import com.breakfast.fun.data.entity.user.coupon.Coupon;
import com.breakfast.fun.data.entity.user.recharge.PayBean;
import com.breakfast.fun.data.entity.user.recharge.RechargeMoney;
import com.breakfast.fun.data.entity.user.submit.OrderInfo;

import java.util.List;
import java.util.Map;

import retrofit2.http.FieldMap;
import rx.Observable;

/**
 * Created by Administrator on 2016/9/8.
 */
public interface UserCartContract {
    interface Model extends BaseModel {
        Observable<SendTime> getSendTimeModel(@FieldMap Map<String, String> map);

        Observable<ProductState> getProductStateModel(@FieldMap Map<String, String> map);

        Observable<OrderInfo> getSubmitOrderModel(@FieldMap Map<String, String> map);

        Observable<RechargeMoney> getPayBeanModel(@FieldMap Map<String, String> map);

        Observable<Coupon> getProperCouponModel(@FieldMap Map<String, String> map);

    }

    interface View extends BaseView {
        void showPopTime();

        void setSendTime(List<String> data);

        void setSendDate(List<WeekdayState> weekdayStates);

        void showOrderInfo(PayBean data);

        void setCoupon(Coupon coupon);
    }

    abstract class Presenter extends BasePresenter<Model, View> {
        public abstract void getSendTime();

        public abstract void getSendDate();

        public abstract void submitOrder(String order);

        public abstract void getPayBean(String orderNo);

        public abstract void getCoupon();
    }
}
